using System;
using CI;
using CI.Misc;
using CI.Organism;
using NUnit.Framework;
using CI.Interfaces;

namespace Mesopotamia.UnitTests.Organism
{
    [TestFixture]
    public class ReproductionTests
    {
        GeneReproductionAsexual _asexual;
        CI.Organism.Organism _organism;
        readonly IHostingEnvironment _hostingEnvironment = new CI.Mesopotamia.MSRBHost(new MockHostingEnvironmentPhysical(), new CI.Mesopotamia.ScenarioLocalXML());
        private readonly SimEnv _simEnv = SimEnv.Instance;

        /// <summary>Test Harness setup</summary>
        [SetUp]
        public void Setup()
        {
            _hostingEnvironment.Organisms = new CI.Organism.OrganismCollection();
            _organism = new CI.Organism.Organism(_hostingEnvironment);
            _asexual = new GeneReproductionAsexual(_organism, Guid.NewGuid());
        }


        /// <summary>argument checker</summary>
        [Test, ExpectedException(typeof(ArgumentException), ExpectedMessage = "Organism")]
        public void GeneReproductionAsexualMutateNullOrganism()
        {
            _asexual.Mutate(0, null);
        }
    }

}


